Cloud computing is a computing paradigm that abstracts many aspects of a conventional computer. In a cloud environment, the hardware components may be abstracted into a hardware fabric. The hardware fabric may be many server computers located in one or more datacenters, and the datacenters may be geographically dispersed.
In many cloud environments, the conventional notion of an operating system may also be abstracted so that applications may operate in a runtime environment, but with limited access to operating system functions.
The cloud environment may execute applications in a manner that is highly scalable. A developer may provide an application to execute, and a management system may determine how much computing resources to allocate, the geographic location of those resources, and may determine which hardware platforms on which to execute the application. In some cases, an administrator may be able to determine some upper and lower limits to the computing resources, but the cloud management system may handle allocating the specific resources and managing the execution of the application.
Cloud environments may allow applications to scale up and down with load, as the cloud management system may allocate resources during high load periods and free up resources during low loads.